#ifndef CONVERSOR_H_
#define CONVERSOR_H_
#include <vector>
#include <string>
#include "../Servidor/PartidaMultijugador.h"
#include "../modelo/Objetos/Objeto.h"
#include <queue>

class Conversor {
private:
	static std::string cargarShort(std::string str, short num);
public:
	virtual ~Conversor();
	/* Serializa un caracter para ser enviado por el socket */
	static std::string serializar(char p);
	
	/* Serializa un vector de partidas para ser enviado por el socket */
	static std::string serializar(std::vector<PartidaMultijugador*> *p);
	
	/* Serializa un caracter y un short para ser enviado por el socket */
	static std::string serializar(char p,short id);
	
	/* Serializa un caracter y dos short para ser enviado por el socket */
	static std::string serializar(char op, short vx, short vy);
	
	/* Serializa un objeto para ser enviado por el socket. Segun el tipo de 
	 * objeto se enviaran distintos atributos, incluyendo el tipo
	 */
	static std::string serializar(Objeto *obj);
	
	/* Deserializa un string que fue recibido por el socket, devolviendo una 
	 * lista de short int
	 */
	static std::vector<short> deSerializar(std::string str);

	/* Deserializa un string que fue recibido por el socket, devolviendo un 
	 * objeto
	 */
	static Objeto *deSerializarObjeto(std::string str);
	
	/* Convierte un short int a string */
	static std::string shortToString(short n);
};




#endif
